///////////////////////////////////////////////////////////
//  GameLoggerText.h
//  Implementation of the Class GameLoggerText
//  Created on:      11-Jan-2015 4:13:26 PM
//  Original author: Eng. Ahmed Yasser
///////////////////////////////////////////////////////////

#if !defined(EA_09DB28D4_4FBC_4c4a_843C_70EBA9B67E97__INCLUDED_)
#define EA_09DB28D4_4FBC_4c4a_843C_70EBA9B67E97__INCLUDED_

#include "IGameLog.h"

namespace EngineGame
{
	namespace EngineProfile
	{
		/**
		 * Log the logging data to a text file
		 * @author Eng. Ahmed Yasser
		 * @version 1.0
		 * @updated 12-Jan-2015 12:14:31 PM
		 */
		class GameLoggerText : public EngineGame::EngineProfile::IGameLog
		{

		private:

			/**
			 * The file name which will be used to log the data
			*/
			std::string _fileName;

		public:

			GameLoggerText();

			/**
			 * The contructor that initialize the log system with log file name
			*/
			GameLoggerText(std::string fileName);


			virtual ~GameLoggerText();

			/**
			 * Close the logger and release any attached resources to it
			 */
			virtual void closeLogger();
			/**
			 * Initialize the logger system with any additional resources needed
			 */
			virtual void initLogger();
			/**
			 * Log any string data in the logger
			 * 
			 * @param logString    The log string that will be logged in the system
			 */
			virtual void log(std::string logString);

		};

	}

}
#endif // !defined(EA_09DB28D4_4FBC_4c4a_843C_70EBA9B67E97__INCLUDED_)
